
package com.crowdfunding.circle.activity.entity;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;

import com.crowdfunding.circle.sensitiveword.SensitiveWordUtils;

/**
 * 活动信息实体类
 *
 * @author 朱国军
 * @version 2016年06月26日 朱国军
 */
public class ActivityInfoVO {

    /** 活动ID */
    private String activityId;

    /** 活动名称 */
    private String activityName;

    /** 活动主办方 */
    private String activityOrganizers;

    /** 活动类型：1，线下活动，2，在线直播 */
    private Integer activityType;

    /** 直播网址 */
    private String activityUrl;

    /** 活动省份 */
    private String activityProvince;

    /** 活动城市 */
    private String activityCity;

    /** 活动地址 */
    private String activityAddress;

    /** 活动图片ID */
    private String activityPicture;

    /** 活动详情 */
    private String activityDetail;

    /** 活动开始时间 */
    private Date activityBeginTime;

    /** 活动结束时间 */
    private Date activityEndTime;

    /** 发布人 */
    private String publishUser;

    /** 创建时间 */
    private Date createTime;

    /** 更新时间 */
    private Date updateTime;

    /** 状态：0默认，1管理员删除，2用户删除 */
    private Integer dataStatus;

    /**
     * 设置活动ID
     *
     * @param activityId 活动ID
     */
    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }

    /**
     * 获取活动ID
     *
     * @return 活动ID
     */
    public String getActivityId() {
        return activityId;
    }

    /**
     * 设置活动名称
     *
     * @param activityName 活动名称
     */
    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }

    /**
     * 获取活动名称
     *
     * @return 活动名称
     */
    public String getActivityName() {
        return activityName;
    }

    /**
     * 获取活动主办方
     *
     * @return 活动主办方
     */
    public String getActivityOrganizers() {
        return activityOrganizers;
    }

    /**
     * 设置活动主办方
     *
     * @param activityOrganizers 活动主办方
     */
    public void setActivityOrganizers(String activityOrganizers) {
        this.activityOrganizers = activityOrganizers;
    }

    /**
     * 设置活动类型：1，线下活动，2，在线直播
     *
     * @param activityType 活动类型：1，线下活动，2，在线直播
     */
    public void setActivityType(Integer activityType) {
        this.activityType = activityType;
    }

    /**
     * 获取活动类型：1，线下活动，2，在线直播
     *
     * @return 活动类型：1，线下活动，2，在线直播
     */
    public Integer getActivityType() {
        return activityType;
    }

    /**
     * 设置直播网址
     *
     * @param activityUrl 直播网址
     */
    public void setActivityUrl(String activityUrl) {
        this.activityUrl = activityUrl;
    }

    /**
     * 获取直播网址
     *
     * @return 直播网址
     */
    public String getActivityUrl() {
        return activityUrl;
    }

    /**
     * 设置活动省份
     *
     * @param activityProvince 活动省份
     */
    public void setActivityProvince(String activityProvince) {
        this.activityProvince = activityProvince;
    }

    /**
     * 获取活动省份
     *
     * @return 活动省份
     */
    public String getActivityProvince() {
        return activityProvince;
    }

    /**
     * 设置活动城市
     *
     * @param activityCity 活动城市
     */
    public void setActivityCity(String activityCity) {
        this.activityCity = activityCity;
    }

    /**
     * 获取活动城市
     *
     * @return 活动城市
     */
    public String getActivityCity() {
        return activityCity;
    }

    /**
     * 设置活动地址
     *
     * @param activityAddress 活动地址
     */
    public void setActivityAddress(String activityAddress) {
        this.activityAddress = activityAddress;
    }

    /**
     * 获取活动地址
     *
     * @return 活动地址
     */
    public String getActivityAddress() {
        return activityAddress;
    }

    /**
     * 设置活动图片ID
     *
     * @param activityPicture 活动图片ID
     */
    public void setActivityPicture(String activityPicture) {
        this.activityPicture = activityPicture;
    }

    /**
     * 获取活动图片ID
     *
     * @return 活动图片ID
     */
    public String getActivityPicture() {
        return activityPicture;
    }

    /**
     * 设置活动详情
     *
     * @param activityDetail 活动详情
     */
    public void setActivityDetail(String activityDetail) {
        this.activityDetail = activityDetail;
    }

    /**
     * 获取活动详情
     *
     * @return 活动详情
     */
    public String getActivityDetail() {
        return activityDetail;
    }

    /**
     * 设置活动开始时间
     *
     * @param activityBeginTime 活动开始时间
     */
    public void setActivityBeginTime(Date activityBeginTime) {
        this.activityBeginTime = activityBeginTime;
    }

    /**
     * 获取活动开始时间
     *
     * @return 活动开始时间
     */
    public Date getActivityBeginTime() {
        return activityBeginTime;
    }

    /**
     * 设置活动结束时间
     *
     * @param activityEndTime 活动结束时间
     */
    public void setActivityEndTime(Date activityEndTime) {
        this.activityEndTime = activityEndTime;
    }

    /**
     * 获取活动结束时间
     *
     * @return 活动结束时间
     */
    public Date getActivityEndTime() {
        return activityEndTime;
    }

    /**
     * 设置发布人
     *
     * @param publishUser 发布人
     */
    public void setPublishUser(String publishUser) {
        this.publishUser = publishUser;
    }

    /**
     * 获取发布人
     *
     * @return 发布人
     */
    public String getPublishUser() {
        return publishUser;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置状态：0默认，1管理员删除，2用户删除
     *
     * @param dataStatus 状态：0默认，1管理员删除，2用户删除
     */
    public void setDataStatus(Integer dataStatus) {
        this.dataStatus = dataStatus;
    }

    /**
     * 获取状态：0默认，1管理员删除，2用户删除
     *
     * @return 状态：0默认，1管理员删除，2用户删除
     */
    public Integer getDataStatus() {
        return dataStatus;
    }

    /**
     * 检查字段长度是否超长，检查非空字段是否有值
     *
     * @return 检查提示信息，为null时表示检查通过
     */
    public String valid() {

        if (StringUtils.isBlank(activityName)) {
            return "活动名称不能为空";
        }
        if (activityType == null) {
            return "活动类型不能为空";
        }
        if (StringUtils.isBlank(activityDetail)) {
            return "活动详情不能为空";
        }
        if (activityBeginTime == null) {
            return "活动开始时间不能为空";
        }
        if (activityEndTime == null) {
            return "活动结束时间不能为空";
        }

        if (StringUtils.isNotBlank(activityName) && activityName.length() > 100) {
            return "活动名称值超长，允许输入的最大长度为：100字符";
        }

        if (SensitiveWordUtils.isContaintSensitiveWord(activityName, 1)) {
            return "活动名称中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(activityName, 1) + "，请检查后再保存";
        }

        if (StringUtils.isNotBlank(activityUrl) && activityUrl.length() > 100) {
            return "直播网址值超长，允许输入的最大长度为：100字符";
        }

        if (StringUtils.isNotBlank(activityProvince) && activityProvince.length() > 50) {
            return "活动省份值超长，允许输入的最大长度为：50字符";
        }

        if (StringUtils.isNotBlank(activityCity) && activityCity.length() > 50) {
            return "活动城市值超长，允许输入的最大长度为：50字符";
        }

        if (StringUtils.isNotBlank(activityAddress) && activityAddress.length() > 50) {
            return "活动地址值超长，允许输入的最大长度为：50字符";
        }

        if (SensitiveWordUtils.isContaintSensitiveWord(activityDetail, 1)) {
            return "活动详情中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(activityDetail, 1) + "，请检查后再保存";
        }
        return null;
    }
}
